/**
 * 
 */
package de.cbf.cam.dsa.dataprovider.talents;

import java.util.ArrayList;
import java.util.List;

import de.cbf.cam.dsa.model.base.TalentTmpl;
import de.cbf.cam.dsa.model.entities.OneAttribute;
import de.cbf.cam.dsa.model.entities.constants.TalentConstants;

/**
 * @author Nebelritter
 *
 */
public class TalentProviderKnowledge {
	private final int TYPE = TalentTmpl.TYPE_Talent_Knowledge;
	
	private static TalentProviderKnowledge instance = new TalentProviderKnowledge();

	public static TalentProviderKnowledge getInstance() {
		return instance ;
	}

	public List<TalentTmpl> provideKnowledgeTalents() {
		List<TalentTmpl> resultList = new ArrayList<TalentTmpl>();
		
		resultList.add(provideAnatomie());
		resultList.add(provideBaukunst());
		resultList.add(provideBrettspiel());
		resultList.add(provideGeographie());
		resultList.add(provideGeschichtswissen());
		resultList.add(provideGesteinskunde());
		resultList.add(provideGoetterKulte());
		resultList.add(provideHeraldik());
		resultList.add(provideHuettenkunde());
		resultList.add(provideKriegskunde());
		resultList.add(provideKryptographie());
		resultList.add(provideMagiekunde());
		resultList.add(provideMechanik());
		resultList.add(providePflanzenkunde());
		resultList.add(providePhilosophie());
		resultList.add(provideRechnen());
		resultList.add(provideRechtskunde());
		resultList.add(provideSagen());
		resultList.add(provideSchaetzen());
		resultList.add(provideSprachenkunde());
		resultList.add(provideStaatskunst());
		resultList.add(provideSternkunde());
		resultList.add(provideTierkunde());
					
		return resultList;
	}
	private TalentTmpl provideAnatomie() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Anatomie, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.KL,OneAttribute.FF});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideBaukunst() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Baukunst, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.FF});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideBrettspiel() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Brettspiel, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideGeographie() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Geographie, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideGeschichtswissen() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Geschichte, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideGesteinskunde() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Gesteinskunde, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.IN,OneAttribute.FF});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideGoetterKulte() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Goetter, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideHeraldik() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Heraldik, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.FF});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideHuettenkunde() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Huettenkunde, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.IN,OneAttribute.KO});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideKriegskunde() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Kriegskunst, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.KL,OneAttribute.CH});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideKryptographie() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Kryptographie, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideMagiekunde() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Magiekunde, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideMechanik() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Mechanik, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.FF});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl providePflanzenkunde() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Pflanzenkunde, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.IN,OneAttribute.FF});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl providePhilosophie() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Philosophie, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideRechnen() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Rechnen, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideRechtskunde() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Rechtskunde, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideSagen() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Sagen, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideSchaetzen() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Schaetzen, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideSprachenkunde() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Sprachenkunde, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideStaatskunst() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Staatskunst, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideSternkunde() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Sternkunde, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideTierkunde() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Tierkunde, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.KL,OneAttribute.IN});
		template.addCompensateTalent(TalentConstants.Sinnenschaerfe, -10);		
		template.setSktColumn('B');
		return template;
	}
}
